RAIS  3.2
C:/Projekte/RAIS/Specific Masks/AddEditUsers_New.aspx.cs
Go to the documentation of this file.
00001 
00028 using System;
00029 using System.Data;
00030 using System.Configuration;
00031 using System.Collections;
00032 using System.Collections.Generic;
00033 using System.Web;
00034 using System.Web.Security;
00035 using System.Text.RegularExpressions;
00036 using System.Web.UI;
00037 using System.Web.UI.WebControls;
00038 using System.Web.UI.WebControls.WebParts;
00039 using System.Web.UI.HtmlControls;
00040 
00041 using RAIS.ApplicationLogicLayer;
00042 using RAIS.Common.UserManagement;
00043 
00044 using FunctionRoles = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.FunctionRole>;
00045 using DataRoles = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.DataRole>;
00046 using Facilities = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.Facility>;
00047 using UserTypes = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.UserTypeData>;
00048 
00049 namespace RAIS.UI.SpecificMasks
00050 {
00054     public partial class AddEditUsers_New : System.Web.UI.Page
00055     {
00059         enum User_PageMode
00060         {
00061             viewUser,
00062             addUser,
00063             editUser
00064         };
00065 
00066         const string strFacility = "Facility";
00067         const string strDataRole = "DataRole";
00068                 //*********************************************************************
00069                 #region Event handlers
00070         protected void Page_PreLoad(object sender, EventArgs e)
00071         {
00072             RAIS.UI.Common.PageManagement.TrimTextBoxValues(this);
00073         }
00080         protected void Page_Load(object sender, EventArgs e)
00081         {
00082                         this.Response.Cache.SetNoStore();
00083                         if (this.CurrentUser == null)
00084                 UI.Common.AccessManagement.SignOut(this);
00085 
00086             this.LBLresult.Text = string.Empty;
00087             if (!this.IsPostBack)
00088             {
00089                 this.LBLusernameNoTranslation.Text = this.CurrentUser.Name;
00090 
00091                 this.BTNdelete.Attributes.Add("onclick", string.Format("javascript: return confirm('{0}');", RAIS.Common.Messages.DELETE_QUESTION_USER.Replace("'", "\\'")));
00092                 this.BTNlock.Attributes.Add("onclick", string.Format("javascript: return confirm('{0}');", RAIS.Common.Messages.DELETE_QUESTION_USER.Replace("'", "\\'")));
00093                 this.BTNactivate.Attributes.Add("onclick", string.Format("javascript: return confirm('{0}');", RAIS.Common.Messages.ACTIVATE_QUESTION_USER.Replace("'", "\\'")));
00094                 this.BTNreject.Attributes.Add("onclick", string.Format("javascript: return confirm('{0}');", RAIS.Common.Messages.REJECT_REQUEST_QUESTION_USER.Replace("'", "\\'")));
00095                 
00096                 this.InitializeControls();
00097 
00098                 UI.Common.UserManagement.InitializeUsersListBox(this.LBselecteduser);
00099                 //UI.Common.UserManagement.InitializeUserTypesList(this.DDLaputype);
00100                                 UI.Common.UserManagement.InitializeUserTypesList(this.DDLusertype);
00101                                 UI.Common.UserManagement.InitializeDataRolesListPlusEmptyRow(this.DDLeuselectdatarole);
00102                 UI.Common.UserManagement.InitializeFacilitiesListPlusEmptyRow(this.DDLeuselectfacility);
00103                 //UI.Common.UserManagement.InitializeFunctionalRolesListByUserType(this.DDLeufunctionalrole, this.SelectedUserType);
00104                                 UI.Common.UserManagement.InitializeFunctionalRolesListPlusEmptyRow(this.DDLeufunctionalrole);
00105 
00106                 //UI.Common.PageManagement.InitializePage(this, this.TreeView1);
00107                 UI.Common.PageManagement.InitializePageTreeForCategory(this, this.TreeView1, RAIS.Common.Constants.CATEGORY_NAME_ADMINISTRATION);
00108 //                              this.LBTNmessagebox.Visible = !(this.CurrentUser.FunctionalRole.Type == FunctionRole.FunctionRoleType.Guest);
00109                                 TreeView1.Nodes[1].ChildNodes[2].Select();
00110                 
00111                                 this.SelectCurrentUser();
00112                                 this.CurrentUser_PageMode = User_PageMode.viewUser;
00113 
00114                 this.ShowUser();
00115                 this.EnableDisableControls();
00116             }
00117             UI.Common.PageManagement.InitHelpMainMenu(LBTNdefault);
00118         }
00125                 protected void Page_Init(object sender, EventArgs e)
00126         {
00127             Common.PageManagement.SetScrolableListBox(LBselecteduser, this, true);
00128         }
00135                 protected void LNKuserStatus_Click(object sender, EventArgs e)
00136                 {
00137                         this.Session[UI.Common.Constants.SELECTED_USER_TAG] = this.SelectedUser;
00138                         this.Response.Redirect(string.Format("~/UserStatus.aspx?id={0}"
00139                                 , this.SelectedUser.ID));
00140                 }
00147         protected void LBselecteduser_SelectedIndexChanged(object sender, EventArgs e)
00148         {
00149             this.EnableDisableEditDelete();
00150                         this.EnableDisableStatusChangingButtons();
00151             this.ShowUser();
00152             this.EnableDisableControls();
00153         }
00160                 protected void DDLeufunctionalrole_SelectedIndexChanged(object sender, EventArgs e)
00161                 {
00162             if (this.SelectedFunctionRole!=null && this.SelectedFunctionRole.Type == FunctionRole.FunctionRoleType.Licensee)
00163                         {
00164                                 this.DDLyesno.SelectedValue = strFacility;
00165                                 this.EnableDisableFacilityDataRole();
00166                         }
00167                 }
00174         protected void DDLyesno_SelectedIndexChanged(object sender, EventArgs e)
00175         {
00176             this.EnableDisableFacilityDataRole();
00177         }
00184         protected void LBTNlogout_Click(object sender, EventArgs e)
00185         {
00186             UI.Common.AccessManagement.SignOut(this);
00187         }
00194         protected void BTNdelete_Click(object sender, EventArgs e)
00195         {
00196             string returnMessage = "";
00197 
00198             UserData userData = this.SelectedUser;
00199             //userData.Locked = true;
00200                         userData.Status = UserData.UserStatus.Locked;
00201 
00202             bool success = UserManagement.ModifyUser(userData, ref returnMessage);
00203             if (success)
00204             {
00205                 returnMessage = RAIS.Common.Messages.USER_REMOVED_LOCKED;
00206                 UI.Common.UserManagement.InitializeUsersListBox(this.LBselecteduser);
00207                 this.ShowUser();
00208             }
00209 
00210             RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, returnMessage, success);
00211             this.EnableDisableEditDelete();
00212                         this.EnableDisableStatusChangingButtons();
00213                 }
00220         protected void BTNaddUser_Click(object sender, EventArgs e)
00221         {
00222             this.ClearUserData();
00223             this.CurrentUser_PageMode = User_PageMode.addUser;
00224                         this.SetFocus(this.TXTeuusername);
00225                 }
00232         protected void BTNedit_Click(object sender, EventArgs e)
00233         {
00234             this.CurrentUser_PageMode = User_PageMode.editUser;
00235                         this.SetFocus(this.TXTeucompletename);
00236                 }
00243                 protected void BTNactivate_Click(object sender, EventArgs e)
00244                 {
00245                         string returnMessage = string.Empty;
00246 
00247                         UserData userData = this.SelectedUser;
00248                         userData.Status = UserData.UserStatus.Active;
00249             SetRoles(userData);
00250                         bool success = false;
00251                         if (userData.AccountRequest != null)
00252                         {
00253                                 success = AccountRequestAnswer.CheckAdministratorEmailAccountSettings(ref returnMessage);
00254                 success = UserManagement.ModifyUser(userData, ref returnMessage);
00255                 if (success)
00256                                         success = UserManagement.ReleaseAccountRequest(userData, ref returnMessage);
00257                         }
00258                         else
00259                         {
00260                                 success = UserManagement.ModifyUser(userData, ref returnMessage);
00261                         }
00262                         
00263                         if (success)
00264                         {
00265                                 returnMessage = RAIS.Common.Messages.USER_ACTIVATED;
00266                 if (userData.AccountRequest != null && ValidateEmail(userData.Email))
00267                                         success = AccountRequestAnswer.SendReleaseMessage(userData.Email, ref returnMessage);
00268 
00269                                 UI.Common.UserManagement.InitializeUsersListBox(this.LBselecteduser);
00270                                 this.LBselecteduser.SelectedValue = userData.Login;
00271                                 this.ShowUser();
00272                         }
00273 
00274                         RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, returnMessage, success);
00275                         this.EnableDisableEditDelete();
00276                         this.EnableDisableStatusChangingButtons();
00277                         this.EnableDisableControls();
00278                 }
00285                 protected void BTNreject_Click(object sender, EventArgs e)
00286                 {
00287                         string returnMessage = string.Empty;
00288 
00289                         UserData userData = this.SelectedUser;
00290                         //userData.Status = UserData.UserStatus.Locked;
00291 
00292                         bool success = AccountRequestAnswer.CheckAdministratorEmailAccountSettings(ref returnMessage);
00293                         if (success)
00294                                 success = UserManagement.RejectAccountRequest(userData, ref returnMessage);
00295 
00296                         if (success)
00297                         {
00298                                 returnMessage = RAIS.Common.Messages.USER_ACCOUNT_REQUEST_REJECTED;
00299                 if(ValidateEmail(userData.Email))
00300                                     success = AccountRequestAnswer.SendRejectMessage(userData.Email, ref returnMessage);
00301 
00302                                 UI.Common.UserManagement.InitializeUsersListBox(this.LBselecteduser);
00303                 this.LBselecteduser.SelectedValue = userData.Login;
00304                                 this.ShowUser();
00305                         }
00306 
00307                         RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, returnMessage, success);
00308                         this.EnableDisableEditDelete();
00309                         this.EnableDisableStatusChangingButtons();
00310                         this.EnableDisableControls();
00311                 }
00318                 protected void BTNlock_Click(object sender, EventArgs e)
00319                 {
00320                         string returnMessage = string.Empty;
00321 
00322                         UserData userData = this.SelectedUser;
00323                         //userData.Locked = true;
00324                         userData.Status = UserData.UserStatus.Locked;
00325             SetRoles(userData);
00326                         bool success = UserManagement.ModifyUser(userData, ref returnMessage);
00327                         if (success)
00328                         {
00329                                 returnMessage = RAIS.Common.Messages.USER_REMOVED_LOCKED;
00330                                 UI.Common.UserManagement.InitializeUsersListBox(this.LBselecteduser);
00331                 this.LBselecteduser.SelectedValue = userData.Login;
00332                                 this.ShowUser();
00333                         }
00334 
00335                         RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, returnMessage, success);
00336                         this.EnableDisableEditDelete();
00337                         this.EnableDisableStatusChangingButtons();
00338                         this.EnableDisableControls();
00339                 }
00346         protected void BTNsaveChanges_Click(object sender, EventArgs e)
00347         {
00348             string actionMessage = "";
00349             bool success = this.ValidateData(ref actionMessage);
00350             if (success)
00351             {
00352                 if (this.CurrentUser_PageMode == User_PageMode.editUser)
00353                 {
00354                     UserData userData = this.SelectedUser;
00355                     userData = this.GetUserDataFromMask(userData);
00356                     success = UserManagement.ModifyUser(userData, ref actionMessage);
00357                 }
00358                 else
00359                 {
00360                     UserData userData = this.GetUserDataFromMask(null);
00361                     success = UserManagement.AddUser(userData, ref actionMessage);
00362                     if (!success && ApplicationLogicLayer.UserManagement.UserExists(this.TXTeuusername.Text, ref actionMessage))
00363                     {// previously deleted user recovered??
00364                         UserData user = ApplicationLogicLayer.UserManagement.GetUserData(this.TXTeuusername.Text);
00365                         if (user.Locked)
00366                             success = this.RecoverLockedUser(user, ref actionMessage);
00367                     }
00368 
00369                     if (success)
00370                     {
00371                         UI.Common.UserManagement.InitializeUsersListBox(this.LBselecteduser);
00372                         this.LBselecteduser.SelectedValue = userData.Login;
00373                         this.ShowUser();
00374                     }
00375                 }
00376 
00377                                 if (success)
00378                                 {
00379                                         this.CurrentUser_PageMode = User_PageMode.viewUser;
00380                                         this.SetFocus(LBselecteduser);
00381                                 }
00382             }
00383             RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, actionMessage, success);
00384         }
00391         protected void BTNdiscard_Click(object sender, EventArgs e)
00392         {
00393             this.ShowUser();
00394             this.CurrentUser_PageMode = User_PageMode.viewUser;
00395                         this.SetFocus(LBselecteduser);
00396                 }
00403         protected void DDLaputype_SelectedIndexChanged(object sender, EventArgs e)
00404         {
00405             UI.Common.UserManagement.InitializeFunctionalRolesListByUserType(this.DDLeufunctionalrole, this.SelectedUserType);
00406         }
00413         protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
00414         {
00415             UI.Common.UserManagement.ProcessTreeViewOnRedirect(this.TreeView1);
00416         }
00417         #endregion
00418                 //*********************************************************************
00419                 #region Private helper methods
00420 
00421 
00422 
00423 
00424 
00425         bool ValidateEmail(string email)
00426         {
00427             Regex re = new Regex("^['\\w_-]+(\\.['\\w_-]+)*@['\\w_-]+(\\.['\\w_-]+)*\\.[a-zA-Z]{2,4}$");
00428             return re.IsMatch(email);
00429         }
00433         void InitializeControls()
00434         {
00435             this.DDLyesno.Items.Add(new ListItem("Yes",    strFacility));
00436             this.DDLyesno.Items.Add(new ListItem("No",     strDataRole));
00437         }
00444         void ShowUser()
00445         {
00446             UserData user = this.SelectedUser;
00447 
00448             if (user == null)
00449             {
00450                 ClearUserData();
00451                 return;
00452             }
00453 
00454             this.DDLaputype.SelectedValue = user.TypeText;
00455             //UI.Common.UserManagement.InitializeFunctionalRolesListByUserType(this.DDLeufunctionalrole, this.SelectedUserType);
00456                         //ListItem listItem = null;
00457                         //if (user.FunctionalRole != null)
00458                         //    listItem = this.DDLeufunctionalrole.Items.FindByText(user.FunctionalRole.Name);
00459                         //if (listItem != null)
00460                         //    this.DDLeufunctionalrole.SelectedValue = user.FunctionalRole.Name;
00461 
00462                         this.DDLusertype.SelectedValue = user.TypeText;
00463                         if (user.AccountRequest != null)
00464                                 this.TXTcomments.Text = user.AccountRequest.Comment;
00465 
00466                         if (user.FunctionalRole != null)
00467                                 this.DDLeufunctionalrole.SelectedValue = user.FunctionalRole.Name;
00468                         else
00469                                 this.DDLeufunctionalrole.SelectedValue = string.Empty;
00470 
00471             this.DDLeuselectdatarole.SelectedValue = 
00472                                 (user.DataRole == null) ? string.Empty: user.DataRole.Name;
00473             //this.DDLyesno.SelectedValue = strDataRole;
00474 
00475                         this.DDLeuselectfacility.SelectedValue =
00476                                 (user.Facility == null) ? string.Empty : user.Facility.Name;
00477                         this.DDLyesno.SelectedValue = (user.FacilitySpecified) ? strFacility : strDataRole;
00478 
00479                         this.EnableDisableFacilityDataRole();
00480 
00481             this.TXTeuusername.Text = user.Login;
00482             this.TXTeupassword.Text = user.Password;
00483             this.TXTconfirmpassword.Text = user.Password;
00484 
00485             this.TXTeucompletename.Text = user.CompleteName;
00486             this.TXTeuemailaddress.Text = user.Email;
00487                         this.TXTaddress1.Text = user.AddressLine1;
00488                         this.TXTaddress2.Text = user.AddressLine2;
00489                         this.TXTaddress3.Text = user.AddressLine3;
00490                         this.TXTcity.Text = user.City;
00491                         this.TXTpostcode.Text = user.PostCode;
00492                         //this.TXTuserstatus.Text = user.StatusData.VisibleName;
00493                         this.LBLuserstatusvalue.Text = user.StatusData.VisibleName;
00494                 }
00498         void ClearUserData()
00499         {
00500             if (this.DDLeufunctionalrole.Items.Count!=0)
00501                 this.DDLeufunctionalrole.SelectedIndex = 0;
00502 
00503             this.TXTeuusername.Text = "";
00504 
00505             this.TXTeupassword.Text = "";
00506             this.TXTconfirmpassword.Text = "";
00507 
00508             this.TXTeucompletename.Text = "";
00509             this.TXTeuemailaddress.Text = "";
00510                         this.TXTaddress1.Text = "";
00511                         this.TXTaddress2.Text = "";
00512                         this.TXTaddress3.Text = "";
00513                         this.TXTcity.Text = "";
00514                         this.TXTpostcode.Text = "";
00515 
00516             this.DDLyesno.SelectedValue = strFacility;
00517                         this.LBLuserstatusvalue.Text = UserData.UserStatuses[UserData.UserStatus.NotActive].VisibleName;
00518         }
00522         void EnableDisableControls()
00523         {
00524                         this.LNKuserStatus.Enabled = this.CurrentUser_PageMode == User_PageMode.viewUser 
00525                                 && !this.ReleaseRejectSubmode
00526                                 && this.SelectedUser != null;
00527                         this.LBselecteduser.Enabled = this.CurrentUser_PageMode == User_PageMode.viewUser && !this.ReleaseRejectSubmode;
00528 
00529             this.BTNsaveChanges.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser;
00530             this.BTNdiscard.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser;
00531                         this.BTNaddUser.Enabled = this.CurrentUser_PageMode == User_PageMode.viewUser && !this.ReleaseRejectSubmode;
00532 
00533             this.TXTeuusername.Enabled = (this.CurrentUser_PageMode == User_PageMode.addUser);
00534 
00535                         //this.BTNdelete.Visible = this.CurrentUser_PageMode != User_PageMode.addUser;
00536 
00537             this.DDLaputype.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser;
00538             this.DDLusertype.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser;// (this.SelectedUser.Status == UserData.UserStatus.NotActive);
00539                         //this.LBLusertype.Visible = this.DDLusertype.Visible;
00540                         //this.TXTcomments.Visible = this.DDLusertype.Visible;
00541                         //this.LBLcomments.Visible = this.TXTcomments.Visible;
00542 
00543             this.DDLeufunctionalrole.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser;
00544             //this.DDLeufunctionalrole.Visible = (UserData.UserTypes[DDLusertype.SelectedValue].GetDefaultFunctionalRole() == null);
00545 
00546             this.DDLeuselectdatarole.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser;
00547 
00548             this.DDLeuselectfacility.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser;
00549 
00550             this.TXTeucompletename.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser;
00551             this.TXTeuemailaddress.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser;
00552 
00553             this.TXTeupassword.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser
00554                                 && (this.CurrentUser_PageMode == User_PageMode.addUser
00555                                         || this.SelectedUser.FunctionalRole == null
00556                                         || this.SelectedUser.FunctionalRole.Type != FunctionRole.FunctionRoleType.Guest);
00557                         this.TXTconfirmpassword.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser
00558                                 && (this.CurrentUser_PageMode == User_PageMode.addUser
00559                                         || this.SelectedUser.FunctionalRole == null
00560                                         || this.SelectedUser.FunctionalRole.Type != FunctionRole.FunctionRoleType.Guest);
00561                         this.TXTaddress1.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser;
00562                         this.TXTaddress2.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser;
00563                         this.TXTaddress3.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser;
00564                         this.TXTcity.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser;
00565                         this.TXTpostcode.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser;
00566 
00567             this.DDLyesno.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser;
00568 
00569                         this.EnableDisableEditDelete();
00570                         this.EnableDisableStatusChangingButtons();
00571                         this.EnableDisableFacilityDataRole();
00572 
00573             UI.Common.UserManagement.EnableCommonControls(this, this.CurrentUser_PageMode == User_PageMode.viewUser);
00574 
00575             this.LBLadmin.ForeColor = RAIS.UI.Common.Constants.COLOR_OF_MENU_BAR_TEXT_HIGHLIGHT;
00576 
00577             DDLyesno.Parent.Parent.Visible = UserData.UserTypes[DDLusertype.SelectedValue].IsFacility()
00578                      && UserData.UserTypes[DDLusertype.SelectedValue].IsDataRole();
00579             this.DDLyesno.Visible = UserData.UserTypes[DDLusertype.SelectedValue].IsFacility()
00580                      && UserData.UserTypes[DDLusertype.SelectedValue].IsDataRole();
00581 
00582             DDLeuselectdatarole.Parent.Parent.Visible = (UserData.UserTypes[DDLusertype.SelectedValue].IsDataRole() && !this.DDLyesno.Visible) ||
00583                 (this.DDLyesno.Visible && this.DDLyesno.SelectedValue == strDataRole);
00584 
00585             this.DDLeuselectdatarole.Visible = (UserData.UserTypes[DDLusertype.SelectedValue].IsDataRole() && !this.DDLyesno.Visible) ||
00586                 (this.DDLyesno.Visible && this.DDLyesno.SelectedValue == strDataRole); ;
00587 
00588             DDLeuselectfacility.Parent.Parent.Visible = (UserData.UserTypes[DDLusertype.SelectedValue].IsFacility()&& !this.DDLyesno.Visible) ||
00589                 (this.DDLyesno.Visible && this.DDLyesno.SelectedValue != strDataRole); ;
00590             this.DDLeuselectfacility.Visible = (UserData.UserTypes[DDLusertype.SelectedValue].IsFacility() && !this.DDLyesno.Visible) ||
00591                 (this.DDLyesno.Visible && this.DDLyesno.SelectedValue != strDataRole); ;
00592 
00593             DDLeufunctionalrole.Parent.Parent.Visible = UserData.UserTypes[DDLusertype.SelectedValue].GetDefaultFunctionalRole() == null;
00594             this.DDLeufunctionalrole.Visible = UserData.UserTypes[DDLusertype.SelectedValue].GetDefaultFunctionalRole() == null;
00595             
00596             this.LBLselectdatarole.Visible = this.DDLeuselectdatarole.Visible;
00597             this.LBLselectfacility.Visible = this.DDLeuselectfacility.Visible;
00598             this.LBLconnected.Visible = this.DDLyesno.Visible;
00599             this.LBLeufunctionalrole.Visible = this.DDLeufunctionalrole.Visible;
00600         }
00604         void EnableDisableEditDelete()
00605         {
00606                         this.BTNedit.Enabled = this.CurrentUser_PageMode == User_PageMode.viewUser && this.SelectedUser != null;
00607                         this.BTNdelete.Enabled = this.CurrentUser_PageMode == User_PageMode.viewUser && !this.ReleaseRejectSubmode && this.SelectedUser != null;
00608         }
00612                 void EnableDisableStatusChangingButtons()
00613                 {
00614                         this.BTNactivate.Enabled = (this.CurrentUser_PageMode == User_PageMode.viewUser)
00615                                 && ((this.SelectedUser.Status == UserData.UserStatus.NotActive)
00616                                         || (this.SelectedUser.Status == UserData.UserStatus.Locked));
00617 
00618                         this.BTNreject.Enabled = (this.CurrentUser_PageMode == User_PageMode.viewUser)
00619                                 && ((this.SelectedUser.Status == UserData.UserStatus.NotActive)
00620                                         || (this.SelectedUser.Status == UserData.UserStatus.Locked))
00621                                 && this.SelectedUser.AccountRequest != null;
00622 
00623                         this.BTNlock.Enabled = (this.CurrentUser_PageMode == User_PageMode.viewUser)
00624                                  && !this.ReleaseRejectSubmode
00625                                 && (this.SelectedUser.Status != UserData.UserStatus.Locked);
00626                 }
00630         void EnableDisableFacilityDataRole()
00631         {
00632             if (this.DDLyesno.SelectedValue == strDataRole)
00633             {
00634                 this.LBLselectfacility.Visible = false;
00635                 this.DDLeuselectfacility.Visible = false;
00636                 DDLeuselectdatarole.Parent.Parent.Visible = true;
00637                 this.LBLselectdatarole.Visible = true;
00638                 this.DDLeuselectdatarole.Visible = true;
00639             }
00640             else
00641             {
00642                 LBLselectfacility.Parent.Parent.Visible = true;
00643                 this.LBLselectfacility.Visible = true;
00644                 this.DDLeuselectfacility.Visible = true;
00645                 this.LBLselectdatarole.Visible = false;
00646                 this.DDLeuselectdatarole.Visible = false;
00647             }
00648             
00649         }
00656         bool ValidateData(ref string returnMessage)
00657         {
00658             if (!this.ValidateUserName(ref returnMessage))
00659                 return false;
00660             if (!this.ValidateFunctionRole(ref returnMessage))
00661                 return false;
00662             else
00663                 return this.ValidatePassword(ref returnMessage);
00664         }
00671         bool ValidateUserName(ref string returnMessage)
00672         {
00673             if (this.TXTeuusername.Text.Length == 0)
00674             {
00675                 returnMessage = RAIS.Common.Messages.USER_NAME_EMPTY;
00676                 return false;
00677             }
00678             else
00679                 return true;
00680         }
00687         bool ValidatePassword(ref string returnMessage)
00688         {
00689             if (this.TXTeupassword.Text.Length != 0)
00690             {//there was intention to change or to set the password
00691                 if (this.TXTeupassword.Text == this.TXTconfirmpassword.Text)
00692                     return true;
00693                 else
00694                 {
00695                     returnMessage = RAIS.Common.Messages.PASSWORD_MISMATCH;
00696                     return false;
00697                 }
00698             }
00699             else
00700                 return true;
00701         }
00708         bool ValidateFunctionRole(ref string returnMessage)
00709         {
00710             if (this.SelectedFunctionRole == null && 
00711                 UserData.UserTypes[DDLusertype.SelectedValue].GetDefaultFunctionalRole() == null)
00712             {
00713                 returnMessage = RAIS.Common.Messages.FUNCTION_ROLE_IS_MANDATORY;
00714                 return false;
00715             }
00716             else
00717                 return true;
00718         }
00727         UserData GetUserDataFromMask(UserData userData)
00728         {
00729             if (userData == null)
00730                 userData = new UserData();
00731 
00732             switch (this.CurrentUser_PageMode)
00733             {
00734                 case User_PageMode.addUser: userData.Login = this.TXTeuusername.Text; break;
00735                 case User_PageMode.editUser: userData.Login = this.LBselecteduser.SelectedValue; break;
00736             }
00737 
00738             userData.TypeText = this.DDLusertype.SelectedValue;
00739             
00740             if (this.TXTeupassword.Text.Length != 0) //blank password is not allowed
00741                 userData.Password = this.TXTeupassword.Text;
00742 
00743             userData.CompleteName = this.TXTeucompletename.Text;
00744             userData.Email = this.TXTeuemailaddress.Text;
00745                         userData.AddressLine1 = this.TXTaddress1.Text;
00746                         userData.AddressLine2 = this.TXTaddress2.Text;
00747                         userData.AddressLine3 = this.TXTaddress3.Text;
00748                         userData.City = this.TXTcity.Text;
00749                         userData.PostCode = this.TXTpostcode.Text;
00750 
00751 
00752             SetRoles(userData);
00753                         //userData.Status = UserData.UserStatus.Active;
00754 
00755             return userData;
00756         }
00757         void SetRoles(UserData userData)
00758         {
00759             if (UserData.UserTypes[DDLusertype.SelectedValue].GetDefaultFunctionalRole() == null)
00760                 userData.FunctionalRole = this.SelectedFunctionRole;
00761             else
00762                 userData.FunctionalRole = GetFunctionRoleByName(UserData.UserTypes[DDLusertype.SelectedValue].GetDefaultFunctionalRole());
00763 
00764             if (UserData.UserTypes[DDLusertype.SelectedValue].GetDefaultDataRole() != null)
00765             {
00766                 userData.DataRoleType = (int)UserData.DataRoleIndication.DataRole;
00767                 userData.DataRole = GetDataRoleByName(UserData.UserTypes[DDLusertype.SelectedValue].GetDefaultDataRole());
00768                 userData.Facility = null;
00769                 return;
00770             }
00771 
00772             if (UserData.UserTypes[DDLusertype.SelectedValue].IsFacility()
00773                          && !UserData.UserTypes[DDLusertype.SelectedValue].IsDataRole())
00774             {
00775                 userData.DataRoleType = (int)UserData.DataRoleIndication.Facility;
00776                 userData.Facility = this.SelectedFacility;
00777                 userData.DataRole = null;
00778                 return;
00779             }
00780             if (!UserData.UserTypes[DDLusertype.SelectedValue].IsFacility()
00781              && UserData.UserTypes[DDLusertype.SelectedValue].IsDataRole())
00782             {
00783                 userData.DataRoleType = (int)UserData.DataRoleIndication.DataRole;
00784                 userData.DataRole = this.SelectedDataRole;
00785                 userData.Facility = null;
00786                 return;
00787             }
00788 
00789             if (this.DDLyesno.SelectedValue == strFacility)
00790             {
00791                 userData.DataRoleType = (int)UserData.DataRoleIndication.Facility;
00792                 userData.Facility = this.SelectedFacility;
00793                 userData.DataRole = null;
00794             }
00795             else
00796             {
00797                 userData.DataRoleType = (int)UserData.DataRoleIndication.DataRole;
00798                 userData.DataRole = this.SelectedDataRole;
00799                 userData.Facility = null;
00800             }
00801         }
00806         bool RecoverLockedUser(UserData user, ref string returnMessage)
00807         {
00808             //user.Locked = false;
00809                         user.Status = UserData.UserStatus.Active;
00810                         bool success = ApplicationLogicLayer.UserManagement.ModifyUser(user, ref returnMessage);
00811             if (success)
00812             {
00813                 returnMessage = RAIS.Common.Messages.RESTORED_LOCKED_USER;
00814             }
00815             return success;
00816         }
00821         bool CreateNewTemporalUser()
00822         {
00823             string returnMessage = "";
00824             bool success = !ApplicationLogicLayer.UserManagement.UserExists(this.TXTeuusername.Text, ref returnMessage);
00825 
00826             if (success)
00827             {
00828                 this.CurrentUser_PageMode = User_PageMode.addUser;
00829                 this.TXTeupassword.Text = "";
00830                 this.TXTconfirmpassword.Text = "";
00831                 this.TXTeucompletename.Text = "";
00832                 this.TXTeuemailaddress.Text = "";
00833             }
00834             RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, returnMessage, success);
00835             return success;
00836         }
00840                 void SelectCurrentUser()
00841                 {
00842                         //this.ReleaseRejectSubmode = false;
00843 
00844                         if (this.UserID == 0)
00845                                 this.LBselecteduser.SelectedIndex = 0;
00846                         else
00847                         {
00848                                 string userName = string.Empty;
00849                                 foreach (KeyValuePair<string, UserData> kvp in RAIS.ApplicationLogicLayer.UserManagement.Users)
00850                                         if (kvp.Value.ID == this.UserID)
00851                                         {
00852                                                 userName = kvp.Value.Login;
00853                                                 break;
00854                                         }
00855 
00856                                 ListItem listItem = null;
00857                                 if (userName != string.Empty)
00858                                 {
00859                                         listItem = this.LBselecteduser.Items.FindByText(userName);
00860                                 }
00861                                 if (listItem != null)
00862                                 {
00863                                         listItem.Selected = true;
00864                                         //this.ReleaseRejectSubmode = true;
00865                                 }
00866                         }
00867                 }
00868 
00869         FunctionRole GetFunctionRoleByName(string name)
00870         {
00871             FunctionRoles functionRoles = (FunctionRoles)this.Session[RAIS.UI.Common.Constants.FUNCTION_ROLES_TAG];
00872             if (functionRoles != null && functionRoles.ContainsKey(name))
00873                 return functionRoles[name];
00874             else
00875                 return null;
00876         }
00877 
00878         DataRole GetDataRoleByName(string name)
00879         {
00880             DataRoles dataRoles = (DataRoles)this.Session[UI.Common.Constants.DATA_ROLES_TAG];
00881             if (dataRoles != null && !string.IsNullOrEmpty(name))
00882                 return dataRoles[name];
00883             else
00884                 return null;
00885         }
00886         #endregion
00887                 //*********************************************************************
00888                 #region Properties
00889 
00892         private UserData SelectedUser
00893         {
00894             get
00895             {
00896                 try
00897                 {
00898                     UserData userData = ApplicationLogicLayer.UserManagement.GetUserData(this.LBselecteduser.SelectedValue);
00899                     return userData;
00900                 }
00901                 catch (Exception)
00902                 {
00903                     return null;
00904                 }
00905             }
00906         }
00910         private FunctionRole SelectedFunctionRole
00911         {
00912             get
00913             {
00914                 return GetFunctionRoleByName(this.DDLeufunctionalrole.SelectedValue);
00915             }
00916         }
00920         private DataRole SelectedDataRole
00921         {
00922             get
00923             {
00924                 return GetDataRoleByName(this.DDLeuselectdatarole.SelectedValue);
00925             }
00926         }
00930         private Facility SelectedFacility
00931         {
00932             get
00933             {
00934                 Facilities facilities = RAIS.ApplicationLogicLayer.UserManagement.Facilities;
00935                 if (facilities != null && !string.IsNullOrEmpty(this.DDLeuselectfacility.SelectedValue))
00936                     return facilities[this.DDLeuselectfacility.SelectedValue];
00937                 else
00938                     return null;
00939             }
00940         }
00944         private User_PageMode CurrentUser_PageMode
00945         {
00946             get
00947             {
00948                 if (this.Session[UI.Common.Constants.ADD_EDIT_USER_PAGE_MODE_TAG] != null)
00949                 {
00950                     return (User_PageMode)this.Session[UI.Common.Constants.ADD_EDIT_USER_PAGE_MODE_TAG];
00951                 }
00952                 else
00953                     return User_PageMode.viewUser;
00954             }
00955             set
00956             {
00957                 string message;
00958                 switch (value)
00959                 {
00960                     case User_PageMode.addUser: message = RAIS.Common.Messages.ADDING_NEW_USER; break;
00961                     case User_PageMode.editUser: message = RAIS.Common.Messages.EDITTING_EXISTING_USER; break;
00962                     default: message = ""; break;
00963                 }
00964                 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, message, true);
00965                 this.Session[UI.Common.Constants.ADD_EDIT_USER_PAGE_MODE_TAG] = value;
00966                 this.EnableDisableControls();
00967             }
00968         }
00972         private UserTypeData SelectedUserType
00973         {
00974             get
00975             {
00976                 UserTypes userTypes = RAIS.ApplicationLogicLayer.UserManagement.UserTypes;
00977                 if (userTypes != null)
00978                     return userTypes[this.DDLaputype.SelectedValue];
00979                 else
00980                     return null;
00981             }
00982         }
00986         protected UserData CurrentUser
00987         {
00988             get { return (UserData)this.Session[UI.Common.Constants.CURRENT_USER_TAG]; }
00989         }
00993                 protected int UserID
00994                 {
00995                         get
00996                         {
00997                                 return (Request[RAIS.UI.Common.Constants.USER_ID_PARAMETER_NAME] == null)
00998                                         ? 0
00999                                         : int.Parse(Request[RAIS.UI.Common.Constants.USER_ID_PARAMETER_NAME]);
01000                         }
01001                 }
01005                 protected bool ReleaseRejectSubmode
01006                 {
01007                         get
01008                         {
01009                                 //if (this.Session[RAIS.UI.Common.Constants.RELEASE_REJECT_SUBMODE_TAG] != null)
01010                                 //    return (bool)(this.Session[RAIS.UI.Common.Constants.RELEASE_REJECT_SUBMODE_TAG]);
01011                                 //else
01012                                 //    return false;
01013                                 return (Request[RAIS.UI.Common.Constants.RELEASE_REJECT_SUBMODE_PARAMETER_NAME] == null)
01014                                         ? false
01015                                         : (Request[RAIS.UI.Common.Constants.RELEASE_REJECT_SUBMODE_PARAMETER_NAME] 
01016                                                 == RAIS.UI.Common.Constants.RELEASE_REJECT_PARAMETER_VALUE);
01017                         }
01018                         set
01019                         {
01020                                 this.Session[RAIS.UI.Common.Constants.RELEASE_REJECT_SUBMODE_TAG] = value;
01021                         }
01022                 }
01023                 #endregion
01024 
01025         protected void DDLusertype_SelectedIndexChanged(object sender, EventArgs e)
01026         {
01027             EnableDisableControls();
01028         }
01029     }
01030 }